#ifndef __MYLOGER_H__
#define __MYLOGER_H__
//gg   shift + v   G     =  代码格式的调整方式

#include <string>
#include <log4cpp/Category.hh>

using std::string;
using std::to_string;
/* using namespace log4cpp; */
class MyLogger
{
public:
    static MyLogger *getInstnace();
    static void destroy();
    //就是为了记录日志的
    void warn(const char * msg);
    void error(const char * msg);
    void debug(const char * msg);
    void info(const char * msg);

private:
    MyLogger();
    ~MyLogger();
private:
    static MyLogger *_pInstance;
    log4cpp::Category &_root;
};

#define prefix(msg)  (string(__FILE__) + string(":")  \
    + string(__FUNCTION__) + string(":") \
    + string(to_string(__LINE__)) + string(":") + string(msg))

#define logError(msg) MyLogger::getInstnace()->error(prefix(msg).c_str())
#define logWarn(msg) MyLogger::getInstnace()->warn(prefix(msg).c_str())
#define logInfo(msg) MyLogger::getInstnace()->info(prefix(msg).c_str())
#define logDebug(msg) MyLogger::getInstnace()->debug(prefix(msg).c_str())

#endif
